package accion;

import static org.junit.Assert.*;

import java.util.ArrayList;

import org.junit.Before;
import org.junit.Test;

import utilitario.Utilitario;

import bean.Post;
import bean.Residente;
import bean.Respuesta;

public class PostAccionTests {

	ResidenteAccion residenteAccion = new ResidenteAccion();
	PostAccion postAccion = new PostAccion();
	Utilitario utilitario = Utilitario.crearUtilitario();
	private ArrayList<Post> listaPosts = new ArrayList<Post>();
	private ArrayList<Respuesta> listaRespuestas = new ArrayList<Respuesta>();
	private ArrayList<Residente> listaResidentes = new ArrayList<Residente>();

	@Before
	public void cargaListas() {

		listaPosts = postAccion.inicializarTablaPost();
		listaRespuestas = postAccion.inicializarTablaRespuesta();
		listaResidentes = residenteAccion.inicializarTablaResidente();

	}

	@Test
	public void ingresaPost() {
		int ingreso = 1;
		Post post = new Post("P004", "CAMBIO DE LLAVES",
				"SE HARA CAMBIO DE LLAVES EN PABELLONES 3,4 Y 5", utilitario
						.obtenerFechaActual(), residenteAccion
						.inicializarTablaResidente().get(2));
		assertEquals(ingreso, postAccion.registrarPost(post));
	}

	@Test
	public void ingresaRespuesta() {
		int ingreso = 1;
		Respuesta respuesta = new Respuesta(residenteAccion
				.inicializarTablaResidente().get(1), utilitario
				.obtenerFechaActual(),
				"PERFECTO, YA QUE TIENEN MUCHA ANTIGUEDAD", listaPosts.get(3));
		assertEquals(ingreso, postAccion.registrarRespuesta(respuesta));

	}

	@Test
	public void listarPostPorResidente() {

		Residente residenteBusqueda = residenteAccion
				.inicializarTablaResidente().get(2);

		boolean tieneRegistros = false;
		ArrayList<Post> listarPostPorResidente = new ArrayList<Post>();
		listarPostPorResidente = postAccion
				.listarPostPorResidente(residenteBusqueda);
		int numero = 0;
		if (listarPostPorResidente.size() > 0) {

			tieneRegistros = true;
			System.out.println("Residente: "
					+ residenteBusqueda.getApellidoPaterno() + " "
					+ residenteBusqueda.getApellidoMaterno() + " "
					+ residenteBusqueda.getNombre());
			System.out.println("----------LISTA DE POSTS------------");
			for (Post postxResidente : listarPostPorResidente) {
				numero++;
				System.out.println(numero + " " + postxResidente.getTitulo()
						+ " " + postxResidente.getFecha() + " "
						+ postxResidente.getMensaje());
			}
		} else {
			System.out.println("El residente no tiene ningun post registrado");
		}

		assertTrue(tieneRegistros);
	}

}
